package com.wg.msorderds.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wg.msorderds.entity.OrderDetails;
import com.wg.msorderds.entity.OrderProductInfo;
import com.wg.msorderds.entity.Ordertb;

import java.util.List;

public interface IOrdertbService extends IService<Ordertb> {
    List<Ordertb> selectByUserId(Integer userId);
    /**
     * 根据用户ID查询最新订单（按创建时间倒序，取第一条）
     */
    Ordertb getLatestOrderByUserId(Integer userId);
    /**
     * 创建完整订单（包含订单详情）
     * @param ordertb 订单主信息
     * @param orderDetails 订单详情列表
     * @return 是否创建成功
     */
    int createOrder(Ordertb order, List<OrderDetails> orderDetails);
    /**
     * 获取超时未支付订单
     * @param minutes 超时分钟数
     * @return 超时订单列表
     */
    List<Ordertb> getTimeoutUnpaidOrders(int minutes);

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrder(Integer orderId);

    /**
     * 手动取消订单（用户主动取消）
     * @param orderId 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrderByUser(Integer orderId);

    List<OrderProductInfo> getAllOrders(Integer userId);
}
